a. Field of the Invention
The present invention pertains to computational devices and specifically to programming of state machines.
b. Description of the Background
State machines are computational devices that are used for many low-level functions in today's computers. Many routine, repetitive sequences such as communications handshaking can be quickly and efficiently implemented in a finite state machine. Further, since the state machine can be implemented in hardware, using a series of gates and other hardware devices, the speed and reliability of the state machine can be very high.
State machines are frequently incorporated into integrated circuit devices. It is common for an integrated circuit to have a state machine plus other circuitry and other functionality. Space on an integrated circuit may be limited so that it may be desirable to make the state machine from the smallest number of gates and thus minimize the space it occupies on the integrated circuit.
When several state machines are used in conjunction with each other, some handshaking may occur between the state machines as they communicate with each other. The handshaking may cause some latency in operations and may further complicate the overall implementation.
It would therefore be advantageous to provide a system and method for reducing the number of gates required for large, complex state machines. It would be further advantageous if the functionality of several state machines could be combined so that faster, more efficient operations are achieved.